<?php

/**
 * cancha actions.
 *
 * @package    g2t
 * @subpackage cancha
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class canchaActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
    return $this->renderText("       
        <script type='text/javascript' src='../js/cancha/formCrudCanchas.js'></script>
            <script type='text/javascript' src='../js/cancha/guiCanchas.js'></script>
            ");
  }
  
  public function executeListar(sfWebRequest $request)
  {         
      
         $inicio=(int)$request->getGetParameter('start');
         $fin=(int)$request->getGetParameter('limit');
         
         $canchas=Doctrine::getTable('cancha')->createQuery()->execute();         
         $numCanchas=count($canchas); 
         
         $canchas=Doctrine::getTable('cancha')->createQuery()->limit($fin)->offset($inicio)->execute();
         
         if($numCanchas!=0)
         {              
             $arraytotal=array('total' => $numCanchas);
             $array=array();
             
             foreach($canchas as $cancha)
             {                                                 
                 $response=array('idCancha'=> $cancha->getIdcancha(),
                                'nombreCancha'=> $cancha->getNombrecancha(),  
                                'superficieCancha'=> $cancha->getSuperficiecancha(),
                                'estadoCancha' => $cancha->getEstadocancha()
                         //fotoCancha
                     );
                 
                 $array[]=$response;
             }
             
             $arraytotal["items"]=$array;             
             return $this->renderText(json_encode($arraytotal));
         }         
  }
  
  
  public function executeListarPorCiudad(sfWebRequest $request)
  {           
         
         $idCiudad= $request->getPostParameter('ciudadCancha');
         
         $canchas=Doctrine::getTable('cancha')->createQuery()->where('ciudad_idciudad=?',$idCiudad)->execute();
         $numCanchas=count($canchas);                   
         
         if($numCanchas!=0)
         {              
             $arraytotal=array('total' => $numCanchas);
             $array=array();
             
             foreach($canchas as $cancha)
             {                                                 
                 $response=array('idCancha'=> $cancha->getIdcancha(),
                                'nombreCancha'=> $cancha->getNombrecancha(),  
                                'superficieCancha'=> $cancha->getSuperficiecancha(),
                                'estadoCancha' => $cancha->getEstadocancha(),
                                'ciudadCancha' => $cancha->getCiudad()->getNombreciudad(),
                                'paisCancha' => $cancha->getCiudad()->getPaisIdpais()
                         //fotoCancha
                     );
                 
                 $array[]=$response;
             }
             
             $arraytotal["items"]=$array;             
             return $this->renderText(json_encode($arraytotal));
         }         
  }
  
   public function executeGetEstados(sfWebRequest $request)
  {       
             $arraytotal=array('total' => 2);
             $array=array();
             $array[]=array('estadoCancha'=> "Disponible");                
             $array[]=array('estadoCancha'=> "No Disponible");                 
            // $array[]=array('nombreEstado'=> "Deshabilitado");
              
             $arraytotal["items"]=$array;             
             return $this->renderText(json_encode($arraytotal));                  
         //retornar error
  }
  
  public function executeGetSuperficies(sfWebRequest $request)
  {       
             $arraytotal=array('total' => 2);
             $array=array();
             $array[]=array('superficieCancha'=> "Cesped Verde");                
             $array[]=array('superficieCancha'=> "Arcilla");                 
            // $array[]=array('nombreEstado'=> "Deshabilitado");
              
             $arraytotal["items"]=$array;             
             return $this->renderText(json_encode($arraytotal));                  
         //retornar error
  }
  
  
  public function executeRegistrar(sfWebRequest $request)
  {  
      $archivos=$request->getFiles();
            
      //if(count($archivos)==0) return $this->renderText("{success: false}");
       $archivo=$archivos['fotoCancha'];
       
       $fotoValida= $this->validarImagenFoto($archivo);
       
       if(!$fotoValida) 
       {
            sfConfig::set('sf_web_debug', false);
            $this->renderText("({success:false})");
            return sfView::NONE;
       }
      
      $cancha=new Cancha();                      
      $cancha->setNombrecancha($request->getPostParameter('nombreCancha'));
      $cancha->setSuperficiecancha($request->getPostParameter('superficieCancha'));    
      $cancha->setEstadocancha($request->getPostParameter('estadoCancha'));
      
      //leer archivo de imagen y sacar el contenido
      $fp= fopen($archivo['tmp_name'], 'r');
      $contenido = fread($fp, filesize($archivo['tmp_name']));
      $contenido = addslashes($contenido);
      fclose($fp);
      
      $cancha->setFotocancha($contenido);
      $cancha->setCiudadIdciudad($request->getPostParameter('ciudadCancha'));     
        
      $cancha->save();      
      
        sfConfig::set('sf_web_debug', false);
        $this->renderText("({success:true})");
        return sfView::NONE;    
}

 public function validarImagenFoto($archivo)
  {
          if(in_array($archivo['type'],array( 'image/jpeg', 'image/png', 'image/gif', 'image/x-png')))
          {              
              if ($archivo['size'] <= 500000)
              {                 
                      return true;                                    
              } else return false;
          } else return false;
  }
  
   public function executeEditarDatos(sfWebRequest $request)
  {            
      $idCancha=$request->getPostParameter('idCancha');            
      $cancha=Doctrine::getTable('cancha')->find($idCancha);      
      $cancha->setNombrecancha($request->getPostParameter('nombreCancha'));
      $cancha->setSuperficiecancha($request->getPostParameter('superficieCancha'));    
      $cancha->setEstadocancha($request->getPostParameter('estadoCancha'));  
      
      //$cancha->setFotocancha($contenido);
      $cancha->setCiudadIdciudad($request->getPostParameter('ciudadCancha'));      
      
      $cancha->save();
      
      sfConfig::set('sf_web_debug', false);
        $this->renderText("({success:true})");
        return sfView::NONE;
  }

}
